package com.hkpw.system.service;


import com.hkpw.system.domain.EventSubscribe;
import com.hkpw.system.domain.vo.EventSubscribeViewVo;

import java.util.List;

/**
 * 事件订阅Service接口
 * 
 * @author andy
 * @date 2022-09-29
 */
public interface IEventSubscribeService 
{


    /**
     * 初始化订阅所有门禁事件（后续可优化，增加单独事件的订阅）
     * 1、首先取消订阅所有事件，避免重复订阅
     * 2、查询事件列表，订阅所有事件
     * @return
     */
    public String subscribeDoorEvent();


    /**
     * 查询事件订阅
     * 
     * @param eventType 事件订阅主键
     * @return 事件订阅
     */
    public EventSubscribe selectEventSubscribeByEventType(Long eventType);



    /**
     * 查询事件订阅列表
     * 
     * @return 事件订阅集合
     */
    public List<EventSubscribeViewVo> selectEventSubscribeList();

    /**
     * 新增事件订阅
     * 
     * @param eventSubscribe 事件订阅
     * @return 结果
     */
    public int insertEventSubscribe(EventSubscribe eventSubscribe);

    /**
     * 修改事件订阅
     * 
     * @param eventSubscribe 事件订阅
     * @return 结果
     */
    public int updateEventSubscribe(EventSubscribe eventSubscribe);

    /**
     * 批量删除事件订阅
     * 
     * @param eventTypes 需要删除的事件订阅主键集合
     * @return 结果
     */
    public int unSubscribeByEventTypes(List<Long> eventTypes);

    /**
     * 删除事件订阅信息
     * 
     * @param eventType 事件订阅主键
     * @return 结果
     */
    public int deleteEventSubscribeByEventType(Long eventType);
}
